package thread.threadpool.example1;


import java.util.List;

/**
 * Description: 线程类
 * 编写一个线程类，用于执行线程任务，需要定义一个变量来记录线程的名字
 * 需要定义一个集合容器，用来存储任务列表
 * 线程的执行，需要继承Thread类
 * date: 2022/11/18 10:31
 *
 * @author: Huangjunjie
 * @since JDK 1.8
 */
public class MyWorker extends Thread{

    //定义一个属性，用于记录任务线程名称
    //private String name;
    //定义一个属性，是一个容器，用于存储任务列表
    private List<Runnable> tasks;

    //使用构造方法，用于初始化name属性和容器tasks实行
    public MyWorker(String name,List<Runnable> tasks){
        //this.name = name;
        currentThread().setName(name);
        this.tasks = tasks;
    }
    //重写run方法
    public void run(){
        //判断是否任务列表中是否有任务，如果又任务，就一直执行
        if(tasks.size() > 0){
            //执行第一个任务，并且删除第一个任务
            Runnable r = tasks.remove(0);
            //运行run方法
            r.run();
        }
    }
}
